import os
from time import strftime
from loguru import logger


class LogConfig:
    """
    日志配置类
        日志输出目录
        日志文件名
    """

    @classmethod
    def __get_log_path(cls):
        """
        获取日志文件输出的目录
        :return: log目录路径
        """
        # 项目的完整路径
        project_path = "\\".join(os.path.abspath(os.path.dirname(__file__)).split("\\")[:-1])

        # log文件的输出路径并以当前时间格式化命名
        return fr"{project_path}\logs\{strftime('%Y-%m-%d')}.log"

    @classmethod
    def get_config_logger(cls, log_switch=True) -> logger:
        """
        配置logger信息的输出位置为log目录
        log_switch=True 默认开启log日志
        每20M就自动备份
        :return: logger
        """
        if not log_switch:
            logger.remove()
        else:
            logger.remove()     # 解决重复打印
            logger.add(LogConfig.__get_log_path(),
                       format="{time:YYYY-MM-DD HH:mm:ss} {level} From {module}.{function} : {message}",
                       rotation="20 MB"
                       )
        return logger
